[速報] 基盤モデルなどの大規模分散トレーニング環境「Amazon Sagemaker Hyperpod」がリリース。 #AWSreinvent
せーのでございます。 ただいま、AWS re:Invent 2023 keynoteをラスベガス現地にて聞いております。
FM(基盤)モデルなどの学習用インフラ「Amaozn Sagemaker Hyperpod」の提供が発表されたのでお伝えします。
なにを解決するの?
機械学習のモデルトレーニングをしたことがない方であれば、このサービスのなにが嬉しいのか、ピンとこないかと思います。
このサービスは簡単に言ってしまうと「大規模分散トレーニングが簡単にできる仕組みを提供した」ということになります。
機械学習モデルをSagemakerを使ってトレーニングする際には、一般的にはデータをS3にセットし、Sagemaker notebook上からPythonなどでSagemaker APIライブラリにアクセス、学習用のコンテナをデプロイさせて、コードを注入してトレーニング、というような手順をとります。
しかしデータが大規模になる場合、それぞれのデータを小さなかたまり(チャンク)に分け、コンテナを複数立ち上げて並列にトレーニングすることで学習時間を短縮させます。これを「分散学習」といい、本来このリソースを用意するのが大変だったところをAWSのようなクラウドだと何十台もあっという間に用意できるので便利、ということですね。
ですが、これを実現するには結構な専門知識が必要です。またSagemakerにて分散学習させる際にはそれぞれの学習状況を把握、監視したり、失敗した際のリカバーなど、オーケストレーションの管理が必要となります。
今回発表された「Amazon Sagemaker Hyperpod」はあらかじめSageMakerの分散トレーニングライブラリが設定されているクラスタを使って、トレーニングデータとモデルをすべてのノードに分割して並列処理し、クラスタの計算およびネットワークインフラをフルに活用することができます。追加のフレームワーク、デバッグツール、最適化ライブラリをインストールすることで、トレーニング環境をさらにカスタマイズすることができます。
これは特に基盤モデル(FM)のような規模な分散トレーニングにマッチし、SageMakerがクラスタの健全性をアクティブに監視し、障害のあるノードを交換してモデルのトレーニングを再開することにより、ノードとジョブの回復力を自動化する一方で、FMを数週間から数ヶ月にわたってトレーニングすることができます。
トレーニング中にうまく行ったエポック分だけチェックポイントとして保管して、障害が出たらノードを交換した上で、そのチェックポイントから自動的にやり直す、ということですね。
Slurmのサポート
SageMaker HyperPod はワークロードのオーケストレーションにSlurmをサポートしています。
Slurm(Simple Linux Utility for Resource Management)は、LinuxおよびUnixシステム向けのオープンソースのクラスタ管理およびジョブスケジューリングシステムです。主にスーパーコンピューターや大規模計算クラスターで使用され、計算リソースの効率的な割り当てとジョブの管理が可能です。
環境サポートもさまざま
SageMaker HyperPodは、Conda、venv、Docker、enrootを含む様々な環境でのトレーニングをサポートしています。
リージョン
SageMaker HyperPodは、本日よりAWSリージョンの米国東部(オハイオ州)、米国東部(バージニア州北部)、米国西部(オレゴン州)、アジア太平洋地域(シンガポール)、アジア太平洋地域(シドニー)、アジア太平洋地域(東京)、欧州(フランクフルト)、欧州(アイルランド)、欧州(ストックホルム)でご利用いただけます。
参考URL
https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-sagemaker-hyperpod/